 MACRO
&lab _fAddResource &params
&lab jsl FINLINE
 dc i2"1"
 dc i4"&params"
 MEND
 MACRO
&lab _fLoadResource &params
&lab jsl FINLINE
 dc i2"3"
 dc i4"&params"
 MEND
 MACRO
&lab _fReleaseResource &params
&lab jsl FINLINE
 dc i2"4"
 dc i4"&params"
 MEND
 MACRO
&lab _fDetachResource &params
&lab jsl FINLINE
 dc i2"5"
 dc i4"&params"
 MEND
 MACRO
&lab _fWriteResource &params
&lab jsl FINLINE
 dc i2"6"
 dc i4"&params"
 MEND
 MACRO
&lab _fGetPrivateData &params
&lab jsl FINLINE
 dc i2"15"
 dc i4"&params"
 MEND
 MACRO
&lab _fAddPrivateData &params
&lab jsl FINLINE
 dc i2"26"
 dc i4"&params"
 MEND
 MACRO
&lab _fRelPrivateData &params
&lab jsl FINLINE
 dc i2"27"
 dc i4"&params"
 MEND
 MACRO
&lab _fGetWindowTitle &params
&lab jsl FINLINE
 dc i2"29"
 dc i4"&params"
 MEND
 MACRO
&lab _fSpecialMagic &params
&lab jsl FINLINE
 dc i2"30"
 dc i4"&params"
 MEND
 MACRO
&L CSUB &PARMS,&WORK
&L ANOP
 AIF C:&WORK,.A
 LCLC &WORK
&WORK SETC 0
.A
 GBLA &TOTALLEN
 GBLA &WORKLEN
&WORKLEN SETA &WORK
&TOTALLEN SETA 0
 AIF C:&PARMS=0,.E
 LCLC &LEN
 LCLC &P
 LCLA &I
&I SETA 1
.B
&P SETC &PARMS(&I)
&LEN AMID &P,2,1
 AIF "&LEN"=":",.C
&LEN AMID &P,1,2
&P AMID &P,4,L:&P-3
 AGO .D
.C
&LEN AMID &P,1,1
&P AMID &P,3,L:&P-2
.D
&P EQU &TOTALLEN+4+&WORK
&TOTALLEN SETA &TOTALLEN+&LEN
&I SETA &I+1
 AIF &I<=C:&PARMS,^B
.E
 TSC
 AIF &WORK=0,.F
 SEC
 SBC #&WORK
 TCS
.F
 PHD
 TCD
 MEND
 MACRO
&L RET &R
&L ANOP
 LCLC &LEN
 AIF C:&R,.A
 LCLC &R
&R SETC 0
&LEN SETC 0
 AGO .H
.A
&LEN AMID &R,2,1
 AIF "&LEN"=":",.B
&LEN AMID &R,1,2
&R AMID &R,4,L:&R-3
 AGO .C
.B
&LEN AMID &R,1,1
&R AMID &R,3,L:&R-2
.C
 AIF &LEN<>2,.D
 LDY &R
 AGO .H
.D
 AIF &LEN<>4,.E
 LDX &R+2
 LDY &R
 AGO .H
.E
 AIF &LEN<>10,.G
 LDY #&R
 LDX #^&R
 AGO .H
.G
 MNOTE 'Not a valid return length',16
 MEXIT
.H
 AIF &TOTALLEN=0,.I
 LDA &WORKLEN+2
 STA &WORKLEN+&TOTALLEN+2
 LDA &WORKLEN+1
 STA &WORKLEN+&TOTALLEN+1
.I
 PLD
 TSC
 CLC
 ADC #&WORKLEN+&TOTALLEN
 TCS
 AIF &LEN=0,.J
 TYA
.J
 RTL
 MEND
 MACRO
&LAB _DisposeAll
&LAB LDX #$1102
 JSL $E10000
 MEND
 MACRO
&LAB _DisposeHandle
&LAB LDX #$1002
 JSL $E10000
 MEND
 MACRO
&LAB _GetHandleSize
&LAB LDX #$1802
 JSL $E10000
 MEND
 MACRO
&LAB _HandToHand
&LAB LDX #$2A02
 JSL $E10000
 MEND
 MACRO
&LAB _HLock
&LAB LDX #$2002
 JSL $E10000
 MEND
 MACRO
&LAB _HUnlock
&LAB LDX #$2202
 JSL $E10000
 MEND
 MACRO
&LAB _NewHandle
&LAB LDX #$0902
 JSL $E10000
 MEND
 MACRO
&LAB _SetHandleSize
&LAB LDX #$1902
 JSL $E10000
 MEND
 MACRO
&LAB _DisposeControl
&LAB LDX #$0A10
 JSL $E10000
 MEND
 MACRO
&LAB _DrawControls
&LAB LDX #$1010
 JSL $E10000
 MEND
 MACRO
&LAB _GetCtlHandleFromID
&LAB LDX #$3010
 JSL $E10000
 MEND
 MACRO
&LAB _HideControl
&LAB LDX #$0E10
 JSL $E10000
 MEND
 MACRO
&LAB _NewControl2
&LAB LDX #$3110
 JSL $E10000
 MEND
 MACRO
&LAB _CloseWindow
&LAB LDX #$0B0E
 JSL $E10000
 MEND
 MACRO
&LAB _NewWindow2
&LAB LDX #$610E
 JSL $E10000
 MEND
 MACRO
&LAB _SetFrameColor
&LAB LDX #$0F0E
 JSL $E10000
 MEND
 MACRO
&LAB _SetWTitle
&LAB LDX #$0D0E
 JSL $E10000
 MEND
 MACRO
&LAB _ShowWindow
&LAB LDX #$130E
 JSL $E10000
 MEND
 MACRO
&LAB _TEGetText
&LAB LDX #$0C22
 JSL $E10000
 MEND
 MACRO
&LAB _TESetText
&LAB LDX #$0B22
 JSL $E10000
 MEND
 MACRO
&LAB _GetPort
&LAB LDX #$1C04
 JSL $E10000
 MEND
 MACRO
&LAB _SetPort
&LAB LDX #$1B04
 JSL $E10000
 MEND
 MACRO
&LAB DW &ADR
&LAB DC I1"L:~&SYSNAME&SYSCNT"
~&SYSNAME&SYSCNT DC C"&ADR"
 MEND
 MACRO
&LAB LONG &A,&B
 LCLB &I
 LCLB &M
&A AMID &A,1,1
&M SETB ("&A"="M").OR.("&A"="m")
&I SETB ("&A"="I").OR.("&A"="i")
 AIF C:&B=0,.A
&B AMID &B,1,1
&M SETB ("&B"="M").OR.("&B"="m").OR.&M
&I SETB ("&B"="I").OR.("&B"="i").OR.&I
.A
&LAB REP #&M*32+&I*16
 AIF .NOT.&M,.B
 LONGA ON
.B
 AIF .NOT.&I,.C
 LONGI ON
.C
 MEND
 MACRO
&LAB SHORT &A,&B
 LCLB &I
 LCLB &M
&A AMID &A,1,1
&M SETB ("&A"="M").OR.("&A"="m")
&I SETB ("&A"="I").OR.("&A"="i")
 AIF C:&B=0,.A
&B AMID &B,1,1
&M SETB ("&B"="M").OR.("&B"="m").OR.&M
&I SETB ("&B"="I").OR.("&B"="i").OR.&I
.A
&LAB SEP #&M*32+&I*16
 AIF .NOT.&M,.B
 LONGA OFF
.B
 AIF .NOT.&I,.C
 LONGI OFF
.C
 MEND
